{% extends 'layout.html' %}

{% block content %}
    <div class="container">
        <div>
            <input id="btnAdd" type="button" value="新建传感器" class="btn btn-primary">
        </div>
    </div>
    <div class="panel panel-default" style="margin-top: 10px;margin-bottom: 0">
        <div class="panel-heading">
            <span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
            设备列表
        </div>
        <table class="table table-bordered">
            <thead>

            <tr>
                <th>ID</th>
                <th>MAC地址</th>
                <th>名称</th>
                <th>详情信息</th>
                <th>状态</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
            {% for obj in queryset %}
                <tr uid="{{ obj.id }}">
                    <th>{{ obj.id }}</th>
                    <th>{{ obj.MAC }}</th>
                    <th>{{ obj.title }}</th>
                    <th>{{ obj.detail }}</th>
                 {% if obj.status == 2 %}
                        <th><div style="background:gray;width:50%;height: 50%;text-align:center;color:white">{{  obj.get_status_display }}</div></th>
                    {% else %}
                         <th><div style="background:#2b669a;width:50%;height: 50%;text-align:center;color:white">{{  obj.get_status_display }}</div></th>
                    {% endif %}
                    <td>
                        <input uid="{{ obj.id }}" type="button" class="btn btn-primary btn-xs btn-edit" value="编辑">
                        <input uid="{{ obj.id }}" class="btn btn-danger btn-xs btn-delete" type="button" value="删除">
                        <a href="/mqtt/view/{{obj.MAC}}" class="btn btn-success btn-xs">下发命令</a>
{#                        <input uid="{{obj.MAC}}" class="btn btn-success btn-xs btn-cmd"type="button" value="下发命令">#}
                    </td>

                </tr>
            {% endfor %}
            </tbody>
        </table>
    </div>
    <ul class="pagination">
        {{ page_string }}
    </ul>

    <!-- 新建设备对话框 -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                            aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">新建</h4>
                </div>
                <div class="modal-body">
                    <form id="formAdd">
                        <div class="clearfix">
                            {% for field in form %}
                                <div class="col-xs-6">
                                    <div class="form-group" style="position: relative; margin-bottom: 15px">
                                        <label>{{ field.label }}</label>
                                        {{ field }}  <!--自动创建输入框-->
                                        <span class="error-msg" style="color: red; position: absolute;"></span>
                                    </div>
                                </div>
                            {% endfor %}
                        </div>
                    </form>
                </div>

                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                    <button id="btnSave" type="button" class="btn btn-primary">保存</button>
                </div>
            </div>
        </div>
    </div>
    <!-- 删除对话框 -->
    <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">

            <div class="alert alert-danger alert-dismissible fade in" role="alert">
                <h4>是否确定删除</h4>
                <p style="margin: 10px 0;">删除后所有关联的数据均会被删除！</p>
                <p style="text-align: right;">
                    <button id="btnConfirmDelete" type="button" class="btn btn-danger">确 定</button>
                    <button type="button" class="btn btn-default" data-dismiss="modal">取 消</button>
                </p>
            </div>

        </div>
    </div>
{% endblock %}
{% block js %}
    <script type="text/javascript">

        var DELETE_ID;
        var EDIT_ID;

        $(function () {
            bindBtnAddEvent();
            bindBtnSaveEvent();
            bindBtnDeleteEvent();
            bindBtnConfirmDeleteEvent();
            bindBtnEditEvent();
            bindBtnCmdEvent();
        })

        function bindBtnAddEvent() {
            $("#btnAdd").click(function () {
                // 添加时EDIT_ID为undefined;
                EDIT_ID = undefined;
                // 清空对话框数据
                $("#formAdd")[0].reset();
                // 设置对话框的标题
                $("#myModalLabel").text("新建")
                // 点击新建按钮，显示对话框.
                $('#myModal').modal('show');
            })
        }

        function bindBtnSaveEvent() {
            $("#btnSave").click(function () {

                // 清除所有信息
                $(".error-msg").empty();

                if (EDIT_ID) {
                    // 编辑
                    doEdit();
                } else {
                    // 添加
                    doAdd();
                }
            });
        }

        function doEdit() {
            $.ajax({
                url: "/equipment/edit/" + "?uid=" + EDIT_ID,
                type: "post",
                data: $("#formAdd").serialize(),
                dataType: "JSON",
                success: function (res) {
                    if (res.status) {
                        //alert("创建成功");
                        // 清空表单    $("#formAdd")是jquery对象 -> DOM对象
                        $("#formAdd")[0].reset();
                        // 关闭对话框
                        $("#myModal").modal('hide');
                        // 刷新页面
                        location.reload();
                    } else {
                        if(res.tips) {
                            alert(res.tips);
                        } else {
                                //把错误信息显示出来
                                $.each(res.error, function (name, errorList) {
                                $("#id_" + name).next().text(errorList[0]);
                            })
                        }
                    }
                }
            })
        }

        function doAdd() {
            // 向后台发送请求
            $.ajax({
                url: "/equipment/add/",
                type: "post",
                data: $("#formAdd").serialize(),
                dataType: "JSON",
                success: function (res) {
                    if (res.status) {
                        //alert("创建成功");
                        // 清空表单    $("#formAdd")是jquery对象 -> DOM对象
                        $("#formAdd")[0].reset();
                        // 关闭对话框
                        $("#myModal").modal('hide');
                        // 刷新页面
                        location.reload();
                    } else {
                        //把错误信息显示出来
                        $.each(res.error, function (name, errorList) {
                            $("#id_" + name).next().text(errorList[0]);
                        })
                    }
                }
            })
        }

        function bindBtnDeleteEvent() {
            $(".btn-delete").click(function () {
                //alert("点击了删除！")
                $("#deleteModal").modal('show');

                // 获取当前行的id并赋值给全局变量
                DELETE_ID = $(this).attr("uid");
            })
        }

        function bindBtnConfirmDeleteEvent() {
            $("#btnConfirmDelete").click(function () {
                // 点击确定删除按钮，将全局变量中的那个给要散出的id发送给后台
                $.ajax({
                    url: "/equipment/delete/",
                    type: "GET",
                    data: {
                        uid: DELETE_ID
                    },
                    /*上面均为 利用ajax 使前端data 发送给 后端*/
                    /*下面均为 利用ajax 使后端data 返回给 前端*/
                    dataType: "JSON",
                    /*返回成功 执行success: function(返回的参数) { 函数体 }*/
                    success: function (res) {
                        if (res.status) {
                            //alert("删除成功！");

                            // 隐藏删除框
                            //$("#deleteModal").modal('hide');

                            // 在页面将当前行删除 js方法
                            //$("'tr[uid='" + DELETE_ID + "']").remove();

                            // 要删除的id制空
                            //DELETE_ID = 0;

                            // 简单方法之间刷新
                            location.reload();
                        } else {
                            // 删除失败
                            alert("删除失败！");
                        }
                    }
                })
            })
        }

        function bindBtnEditEvent() {
            $(".btn-edit").click(function () {
                // 防止数据停留在上一个，所以先清空一次
                $("#formAdd")[0].reset();

                var uid = $(this).attr("uid");

                EDIT_ID = uid;
                // 发送ajax获取当前行数据
                $.ajax({
                    url: "/equipment/detail/",
                    type: "get",
                    data: {
                        uid: uid
                    },
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status) {

                            // 将数据赋值到对话框的标签中
                            $.each(res.data, function (name, value) {
                                $("#id_" + name).val(value);
                            })

                            $("#myModalLabel").text("编辑");

                            $('#myModal').modal('show');

                        } else {
                            alert(res.error);
                        }
                    }
                })
                // 在对话框中默认看见
            });
        }

        function bindBtnCmdEvent() {
            $(".btn-cmd").click(function () {
                // 防止数据停留在上一个，所以先清空一次
                $("#formAdd")[0].reset();

                var uid = $(this).attr("uid");

                EDIT_ID = uid;
                // 发送ajax获取当前行数据
                $.ajax({
                    url: "/equipment/detail/",
                    type: "get",
                    data: {
                        uid: uid
                    },
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status) {

                            // 将数据赋值到对话框的标签中
                            $.each(res.data, function (name, value) {
                                $("#id_" + name).val(value);
                            })

                            $("#myModalLabel").text("编辑");

                            $('#myModal').modal('show');

                        } else {
                            alert(res.error);
                        }
                    }
                })
                // 在对话框中默认看见
            });
        }
    </script>
{% endblock %}